/**
 * 判断字符串是否为空
 * @param str
 * @returns {boolean}
 */
export function strIsNotEmpty(str) {
  if(typeof str =='boolean'){
    return true
  }
  if (str != undefined && str != 'undefined' && str != null && str != '') {
    return true
  }
  return false
}

/**
 * 将字符串转boolean
 * @param obj
 * @returns {boolean}
 */
export function dealBoolean(obj){
  if(obj==true || obj=='true' || obj=='TRUE'){
    return true;
  }
  return false;
}

/**
 * 下拉列表翻译
 **/
export function translatorFormatter(row, item){
  let showTxt = ''
  switch (item.htmlType) {
    case 'datetime'://日期控件
      showTxt = this.parseTime(row[item.columnName], '{y}-{m}-{d} {hh}:{mi}:{ss}')
      break
    case 'select'://下拉框
    case 'allowCreateSelect'://下拉框
    case 'radio'://单选框
    case 'checkbox'://复选框
      showTxt = this.selectDictLabel(item.dictItems, row[item.columnName])
      break
    case 'input'://文本框
    case 'textarea'://文本域
    case 'number'://数字类型
    case 'editor'://富文本控件
      showTxt = row[item.columnName]
      break
    case 'multipleSelect'://多选下拉框
    case 'multipleallowCreateSelect'://多选下拉框
      showTxt = this.selectDictLabels(item.dictItems, row[item.columnName], ',')
      break
    default:
      showTxt = row[item.columnName]
      break
  }
  return showTxt
}

/** 生成唯一标识 **/
export function generateNumTag() {
  return parseInt(Math.random() * (999999999 - 100000000) + 10)
}

/**
 * 驼峰命名转换
 * @param str
 * @returns {*}
 */
export function toCamelCase(str) {
  if(str==undefined || str==null || str==''){
    return str
  }
  let reg=/_+(\w)/g;
  let result=str.replace(reg,function(){
    if(arguments[2])return (arguments[1]).toUpperCase();
    else return arguments[0];
  });
  return result;
}

/**
 * 成功消息提示
 * @param msg
 */
export function msgSuccess(msg) {
  this.$message({ showClose: true, message: msg, type: 'success' })
}

/**
 * 失败消息提示
 * @param msg
 */
export function msgError(msg) {
  this.$message({ showClose: true, message: msg, type: 'error' })
}


/**
 * 根据指定的开始字符与结束字符，截取字符串中的内容
 */
export function substringBetween(str,start,end) {
  if(!strIsNotEmpty(str) || !strIsNotEmpty(start) || !strIsNotEmpty(start)){
    return str
  }
  let sIndex=str.indexOf(start);
  if(sIndex>-1){
    let eIndex=str.indexOf(end,sIndex+start.length)
    if(eIndex>-1){
      return str.substring(sIndex+start.length,eIndex)
    }
  }
  return str
}
